home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Archivers / ModPack / ModPack.doc < prev    next >
Text File  |  1996-09-26  |  17KB  |  331 lines

  1.  
  2.                               ModPack V1.4b
  3.                             -----------------
  4.                              by  Mike Coenen
  5.  
  6.  
  7. INFO
  8.     This little assembler-program packs soudtracker-modules together with a
  9.     file containing additional information into an LHA-archive.
  10.     The program needs at least OS2.04, but it will run on every processor
  11.     of the 68000-family (that's not quite me, is it ?). In addition the
  12.     program 'LHA' is needed somwhere where you can reach it without having
  13.     to add a path (e.g. C:).
  14.     ModPack is ThinkWare. So if you use it frequently, you should think of
  15.     me...
  16.     A propos: I will NOT be held responsible for any damage or dataloss
  17.               caused in connection with ModPack!
  18.  
  19. SELECT FILES
  20.     As ModPack has to know which files to pack, you have to tell him somehow.
  21.     To do so, you have three choices.
  22.     You can call a file-requester by pressing the 'Add'-gadget and select the
  23.     desired modules (multiselect with SHIFT is allowed). You are also able
  24.     to drag icons directly into the ModPack window and drop them there (even
  25.     more than one, if you like). This would make more sense with large
  26.     numbers of modules, as you can show files without icons on the Workbench
  27.     as well. Third, you can do an ExtendedSelect. That means you click once
  28.     on the ModPack-icon, and then with the SHIFT-key held down click on all
  29.     files you want to be loaded. Do a double-click on the last icon (SHIFT
  30.     still pressed) so that ModPack is started and the files will be read.
  31.     If you want to select an entire directory, but it is unreachable from
  32.     Workbench because it lies in a fifth-level-subdirectory without any
  33.     icons or whatever, you don't have to 'Window/Show/All Files' all
  34.     directories. Just click 'Add', select the desired directory and press
  35.     'Add' in the file requester without selecting ANY file. Then the entire
  36.     directory will be analyzed. Note that by selecting entire directories
  37.     the pattern defined in the ToolTypes (or the default one) will be used
  38.     and NOT the one in the file requester. That's because I don't know how
  39.     to access it.
  40.  
  41.     The selected files are then examined and, together with their size,
  42.     displayed in the ListViewGadget. If you want to add some modules to the
  43.     List later on, just repeat the procedure and the new files will be
  44.     attached at the end of the list. Don't care about the path - it doesn't
  45.     matter. In fact every file could be in an other directory, ModPack
  46.     handles it automatically.
  47.     The number of selected files can be seen in the bottom left hand corner
  48.     in the 'Cnt:'-TextGadget.
  49.     ModPack recognizes files crunched with the PowerPacker or the Imploder.
  50.     Such files will be marked in the ListViewGadet with a "P" for "Power-
  51.     Packer" or an "I" for "Imploder". The RealName will in such cases only
  52.     be "PP_x" or "IMP_x", where x is a number.
  53.  
  54. EDIT FILES
  55.     When you select an item from the ListViewGadget, some information will
  56.     become visible on the left side, as there are:
  57.     'RealName': This TextGadget displays the module's name. This is not the
  58.                 filename but the 'real one' which is read from the file.
  59.     'Filename': Here, the filename of the arcive will be displayed. It will
  60.                 be assembled from the RealName and the suffix '.lha'.
  61.                 All spaces, colons, slashes, full stops, commas, and "_"s
  62.                 (I dont't know what a '_' is called in english...) will be
  63.                 thrown out, and the following character will be capitalized
  64.                 (Ä, Ü, ö etc. treated correctly). 'live long,and_Prosper'
  65.                 would therefore be converted into 'LiveLongAndProsper'.
  66.     'Composer': The Composer... The name will be extracted from the file's
  67.                 comment which must have the following format:
  68.                 COMPOSER^FROM^INFO
  69.                 The character '^' operates as separator, where it is not
  70.                 necessary for all three fields to be existent. Valid is for
  71.                 example '^^Metal', what leads to an empty Composer- and
  72.                 From-String, and to an Info-String containing 'Metal'. You
  73.                 can enter 'Mike Coenen' as well, so that the Composer will be
  74.                 'Mike Coenen' and the rest will be empty ('Mike Coenen^^'
  75.                 will, of course, work too).
  76.     'From'    : The source of the module (e.g. Demo xyz). This will be
  77.                 extracted from the file's comment which must have the
  78.                 following format: COMPOSER^FROM^INFO
  79.     'Info'    : This field can contain many things, for example the kind of
  80.                 music... The Info-string will be extracted from the file's
  81.                 comment which must have the following format:
  82.                 CMOPOSER^FROM^INFO
  83.     Except for the RealName you can edit everything, even the name of the
  84.     archive, which, in many cases, might be not quite like you want it.
  85.     But Attention! ALL INPUTS WILL ONLY BE ACCEPTED AFTER PRESSING RETURN,
  86.     TAB OR SHIFT-TAB! IF A STRINGGADGET IS INACTIVATED BY A MOUSECLICK, THE
  87.     CHANGE WILL NOT BE CARRIED OUT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  88.     ALL STRINGGADGETS IN THIS PROGRAM WILL HANDLE IT THIS WAY !!!!!!!!!!!!!
  89.  
  90. DELETE FILES
  91.     If you want to delete a file from the list, just select it, and click on
  92.     'Del'.
  93.     By clicking on 'ClrAll' you can delete all entries in the ListViewGadget.
  94.     There won't be any changes on disk when you delete an entry. Only the
  95.     items in the list will be affected.
  96.  
  97. SAVE INFO
  98.     ModPack offers you the possibility to save the info displayed on the
  99.     left as an ASCII-file. Click on 'Save' and a file requester will open.
  100.     Select or enter the filename and confirm it. Should the file already
  101.     exist, you can either overwrite it or append the new information. As a
  102.     third option you can cancel and not do anything.
  103.  
  104. (DONT'T) PAY ATTENTION TO COMMENT
  105.     With the CheckboxGadget you can define whether ModPack shall examine
  106.     the module's file comment or not. If the comment is not in the format
  107.     'COMPOSER^FROM^INFO' there might be some unwanted results which have
  108.     to be corrected manually. So you can switch this function off to ignore
  109.     the comment. Note that ignoring the comment can only be done while
  110.     selecting files. Once a file is in the list, switching on or off will
  111.     have no effect.
  112.     The default is 'COMMENT=TRUE' that makes the comment to be examined.
  113.     If you want to have it the other way round just from the start, set
  114.     'COMMENT=FALSE' in the ToolTypes. This would then be the predefined
  115.     setting when launched from the Workbench.
  116.  
  117. 8 CHARACTER LIMIT
  118.     This has been implemented in order to save MS-DOS users from total
  119.     despair. I did see more than one BBS crashing because of too long file-
  120.     names. If activated the filenames of all Modules in the ListView will
  121.     be truncated to eight characters plus '.lha'. Making the option inactive
  122.     causes all filenames to be normal again :-)
  123.     This can also be controlled by the ToolTypes. Add 'CHARLIMIT=TRUE' to
  124.     activate it right from the start.
  125.  
  126. EXTERNAL ID
  127.     As the default file_id.diz-layout might surely not please everyone, I
  128.     added the possibility to use you own IDs. You have to set up two ASCII-
  129.     files, one for the 'full' ID and one for the 'empty' one. Add the Tool-
  130.     Types 'FILEIDFULL=File' (where 'File', of course, can be any valid path
  131.     to a file) and 'FILEIDEMPTY=File'. Only if those two entries are valid,
  132.     the CheckboxGadget will be enabled.
  133.     The File can be as long as you want it to be. To insert the RealName
  134.     you have to type '^R_$(xx)' where xx is a number indicating the length
  135.     of the string (shorter ones will be padded with SPACEs). The keyword
  136.     for the composer is '^C_$(xx)', for the From-entry '^F_$(xx)' and for
  137.     the Info-entry '^I(xx)'. so it could look like:
  138.  
  139.     A MODULE...
  140.     ======================================
  141.     RealName    : ^R_$(20)
  142.     --------------------------------------
  143.     Author      : ^C_$(30)
  144.     --------------------------------------
  145.     From        : ^F_$(7)
  146.     --------------------------------------
  147.     Information : ^I_$(128)
  148.  
  149.     This inserts a 20-bytes RealName string, a 30-bytes Composer string, a
  150.     7-bytes From string and a 128 bytes Info string.
  151.     The order must always be the same: first RealName, then Composer,
  152.     followed by From and Info.
  153.     The 'Empty' ID (without 'From' and 'Info' fields) lacks the ...well...
  154.     'From' and 'Info' fields. Surprising, isn't it ;-)
  155.     With the two ToolTypes present and(!) valid, the CheckboxGadget is auto-
  156.     matically enabled and activated. However, 'EXTERNALID=FALSE' overrides
  157.     that, and leaves the Gadget blank (but enabled). Note that you cannot
  158.     force the gadget to be enabled by 'EXTERNALID=TRUE' without having valid
  159.     ID-files.
  160.  
  161. THE LIST FILE
  162.     The ListFile keeps track of all files prcessed so far. It also prevents
  163.     name conflicts by renaming files that already exist. The ListFile can
  164.     only be activated by setting ToolType 'LISTFILE=File' (where 'File' can
  165.     be any file. If the specified file doesn't exist, ModPack creates it.
  166.     With a file present, ModPack reads all entries an stores them in memory.
  167.     Everytime a file is processed by LHA, ModPack checks its name and adds
  168.     it to the file.
  169.     If a name conflict occurs, ModPack renames the file to Filename_xx, where
  170.     xx is a hexadecimal serial number. In 8-character-mode the files are
  171.     renamed to Filenaxx. The name is cut off behind the sixth character and
  172.     the seriel number is appended. Of course you can edit the ListFile with
  173.     every text editor...
  174.  
  175. SELECT DESTINATION PATH
  176.     All modules, after they have been archived, will be stored in this
  177.     directory. The default path is 'RAM:'. Do you want another path, you can
  178.     either enter it manually or, by clicking onto the gadget to the left,
  179.     select the new path in a directory-reueqster. In addittion there is the
  180.     possibility to drop a drawer icon into the ModPack-window. The program
  181.     will take its path and put it into the StringGadget.
  182.     If there are some drawer icons within some file icons that are dragged
  183.     into the window, ModPack will take the path from them as well.
  184.     If you want to have another destinaion directory right after the start,
  185.     you have to change the ToolTypes. Example: 'DESTINATION=DH5:Upload/'
  186.  
  187. SELECT SOURCE PATH
  188.     This is the directory that is the default directory in the file requester
  189.     when you select files. It is always changed when you select a module in
  190.     a different directory. The default is 'Modules:'. If you don't have
  191.     this assign or volume, with the first file requester comes the nasty
  192.     'Please insert volume...' message. To prevent this you can set the source
  193.     directory in the ToolTypes to whatever you want. If you'd like
  194.     'DH1:Music/Modules/', type 'SOURCE=DH1:Music/Modules/'.
  195.  
  196. CHANGE PATTERN
  197.     When selecting files by file requester only those files will be shown
  198.     that either start witn 'mod.' or end with '.mod'. This can only be
  199.     changed in the requester itself and is then only valid once. To achieve
  200.     a constant change, change the ToolTypes. If you want that for example
  201.     files with the suffix '.xyz' shall be visible as well, write
  202.     'PATTERN=(mod.#?|#?.mod|#?.xyz)'
  203.  
  204. START ARCHIVING
  205.     After a click on 'Start' all modules will be archived one by one. ModPack
  206.     opens a CON:-window to show the output of LHA. In addition to the module
  207.     the ASCII-File 'file_id.diz' will be added, which contains information
  208.     about the module.
  209.  
  210. STOP ARCHIVING
  211.     To stop archiving, klick on the 'Stop!'-Gadget. After the current module
  212.     has finished, the process will be interrupted.
  213.  
  214. QUIT PROGRAM
  215.     To quit ModPack klick on the window's CloseGadget or the button labeled
  216.     'Quit'.
  217.  
  218. START FROM CLI
  219.     When launched from the CLI, the following presets will be activated:
  220.     Source     : 'Modules:'
  221.     Destination: 'RAM:'
  222.     Comment    : 'TRUE'
  223.     Pattern    : '(mod.#?|#?.mod)'
  224.     CharLimit  : 'FALSE'
  225.     ExternalID : 'FALSE' (disabled)
  226.     ListFile   : (disabled)
  227.     Those presets are also valid if launched from the Workbench and there
  228.     are no ToolTypes.
  229.  
  230. ----------------------------------------------------------------------------
  231.  
  232. BUGS
  233.     Perhaps there might be some layout problems with OS2.0. The appearance
  234.     of the ListViewGadgets has been changed from 2.0 to 3.0 an, so do I
  235.     believe, the reaction on the Height-parameter as well. I couldn't test
  236.     the program with Kick 2.0, so dear OS2.0 users, if there goes something
  237.     wrong, ask Commodore (or Samsung or whoever) why.
  238.  
  239.     If there should be any more bugs, please contact me...
  240.  
  241. HISTORY
  242.     V0.xx   before 12.08.1994   Inofficial beta-versions
  243.  
  244.     V1.0a   12.08.1994          First public, fully operational release
  245.                                 Code length:  9408 bytes
  246.                                 Sourcecode : 52421 bytes / 2249 lines
  247.  
  248.     V1.1a   13.08.1994          - Now supports ExtendedSelect on Workbench
  249.                                 - Colons, commas, full stops, slashes and
  250.                                   '_'s (those things, you know) will be
  251.                                   taken out of the filename
  252.                                 Code length:  9600 bytes
  253.                                 Sourcecode : 54067 bytes / 2304 lines
  254.  
  255.     V1.4a   13.09.1994          - Eliminates question marks, inverted commas,
  256.                                   '#'s and '%'s (whatever they're called) in
  257.                                   the filename and converts '()' and '[]'
  258.                                   into '{}' (brackets like '(' or '[' confuse
  259.                                   LHA's parser...)
  260.                                 - Pressing the 'Add' button in the file
  261.                                   requester before having selected a file now
  262.                                   means to add all the files in the directory
  263.                                 - Option added to limit filenames to 8 chars
  264.                                   plus the '.lha' extension
  265.                                 - Reading only the first 19 Bytes as the
  266.                                   RealName (that's the ...well specification)
  267.                                 - Recognizing PowerPacked and Imploded files
  268.                                   and doesn't read any RealName but gives
  269.                                   them a number and marks them in the ListView
  270.                                 - Added a ListFile option to keep track of
  271.                                   processed files and to prevent name
  272.                                   conflicts
  273.                                 - Eliminated enforcer-hit that occured when
  274.                                   dropping icons into the window. ModPack is
  275.                                   now free of enforcer-hits !  (*)
  276.                                 - Added the possibility to use custom FileIDs
  277.                                 Code length: 12864 bytes
  278.                                 Sourcecode : 79181 bytes / 3174 lines
  279.  
  280.     V1.4b   14.09.1994          - Cleaned up BSS-Hunk. Memory usage now 3172
  281.                                   bytes less than before
  282.                                 - The 'Save' and 'ClrAll' gadgets were
  283.                                   disabled after an extended select. Fixed now
  284.                                 - Module and ID file now archived in one pass.
  285.                                 CodeLength: 12848 bytes
  286.                                 Sourcecode: 79495 bytes / 3181 lines
  287.  
  288. (*) It wasn't so hard to find this bug although it occured in ROM. I just
  289. debugged me through there and in a matter of minutes I found it. In order not
  290. to make any effort, my MessagePort for the AppMessages was the same as for the
  291. IntuiMessages. I waited with WaitPort() for something to happen and then
  292. called GT_GetIMsg(). So far so good, but if an AppMsg comes in, it will be
  293. processed by GetIMsg() as well. GetIMsg() does nothing but calling exec's
  294. GetMsg() and processing the data by calling gadtools' GT_FilterIMsg(). But as
  295. the structure of AppMessages and IntuiMessages differs, FilterIMsg() reads at
  296. the wrong offsets. Now, after WaitPort() I check whether it's an AppMsg or not.
  297. If it is, ModPack does only call exec's GetMsg() and ReplyMsg().
  298. I just wanted to say this so that other programmers are able to fix that nasty
  299. bug in advance...
  300.  
  301.  
  302. THANKS
  303.     ...go to Timo Henke who had the initial idea of ModPack and who came up
  304.     with a lot of suggestions and some icons.
  305.  
  306.  
  307. ADDRESS
  308.  
  309. In general:
  310.  
  311.     Mike Coenen
  312.     Kleestr. 10
  313.     D-31655 Stadthagen
  314.     Germany
  315.  
  316.  
  317. Until about 01.08.1995:
  318.  
  319.     Mike Coenen
  320.     Virchowstr. 5
  321.     D-31737 Rinteln
  322.     Germany
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.